package Client;


import java.awt.*;
import java.applet.Applet;
import java.net.*;

public class Client extends Applet {
	clientwindow window;
	loginwindow loginwin;
	String Username;
	String param;
	int port = 8999; // YOU MUST CHANGE THIS
	Image GameImage = null;

	public void init() {
		GameImage = this.getImage(this.getDocumentBase(), "title.gif");
		System.out.println("port is " + port);
		loginwin = new loginwindow(this, "Login Window");
		loginwin.show();
	}

	public void stop() {
		System.out.println("stop");
		window.dispose();
	}

	public void SendInfo(String text) {
		if (text.equals(""))
			Username = "DrewBledsoe";
		else
			Username = text;
		System.out.println("username is " + Username);
		window = new clientwindow(this, this.getDocumentBase(), port, Username,
				GameImage);
	}
} // end class

class loginwindow extends Frame {
	public Client parent;
	public Panel buttonPanel;
	public Button login;
	public Label user_label;
	public TextField user, password;

	public loginwindow(Client parent, String wintitle) {
		super(wintitle);
		this.parent = parent;
		user_label = new Label("What's Your name:");
		user = new TextField(25);

		buttonPanel = new Panel();
		login = new Button("Connect to Server");

		// Add button to panel and panel to window
		setLayout(new FlowLayout());
		buttonPanel.setLayout(new GridLayout(7, 1));
		buttonPanel.add(new Label("Please enter your name ..."));
		buttonPanel.add(user_label);
		buttonPanel.add(user);
		buttonPanel.add(new Label(""));
		buttonPanel.add(login);
		add(buttonPanel);

		// Size window to preferred size
		this.reshape(300, 300, 300, 300);
		move(150, 300);
		user.requestFocus();
		this.show();
	}// end loginwindow

	// uses the jdk1.0.2 event handler...
	public boolean action(Event e, Object arg) {

		if (e.target == login || e.target == user) {
			if (this.isShowing()) {
				try {
					parent.SendInfo(user.getText());
				} catch (Exception exceptn) {
					exceptn.printStackTrace();
					System.out.println("Error:" + exceptn);
				} finally {
					dispose();
				}
			}
		}
		return true;
	} // end action(Event, Object)
}// end class definition
